<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //元字符
    /*
    * .表示出了\n意外的任意一个字符
    * []表示范围
    * [1]表示1，[1,2]表示1或者2
    * [0-9]表示0到9任意一个数字
    * [a-z]表示a到z任意一个字符
    * [A-Z]表示A到Z任意一个字符
    * [a-zA-Z]表示任意一个字母
    * [.]表示.
    * | 或 [0-9]|[a-z]表示要么是数字要么是字母
    * () 分组，也可以提升优先级
    * ========以下为限定符=========
    * *表示前面的表达式出现0次或者多次 [a]* 表示0个或者多个a
    * +表示前面的表达式出现1次或者多次 [6]+ 表示1个或者多个6
    * ?表示前面的表达式出现0次或者1次，同时也可以用来阻止贪婪模式 [o]? 表示0或者1个o，
    * {}表示前面字符出现的次数  {0,}0到多次，{0,1}0到1次,{3,5}3到5次，{4}4次
    * ^ 表示以什么开头，或者表示取非，^[0-9]表示以数字开头,[^0-9]表示取反，非数字
    * $表示以什么结束，[a-z]$表示以小写字母结束
    *
    * \d表示数字
    * \D表示非数字
    * \s表示空白符
    * \S表示非空白符
    * \w表示非特殊符号，类似于[a-zA-Z0-9_]
    * \W表示特殊符号，类似于[^a-zA-Z0-9_]
    * \表示转译，如\"表示一个"符号
    *
    *
    *
    * */
    // 身份证验证  ([1-9]\d{14})|([1-9]\d{16}[0-9xX])
    // 座机号码验证 \d{3,4}[-]\d{8}
    // 手机号验证 [1][3578][0-9]{9}
    // 邮箱验证 [0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+[.](com|cn)

    function reg(rule,string) {
        var reg = new RegExp(rule);
        var flag = reg.test(string);
        console.log(flag);
    }
    var rule = /\d{1,5}/;
    var string = "我的书籍号码是:werer";
    reg(rule,string);

    var str = "移动：10086，联通：10010，电信：10000";
    //正则表达式后面加上g表示全局匹配,i表示忽略大小写
    var arr = str.match(/\d{5}/g);
    console.log(arr);

    //利用正则表达式替换字符串内容
    var str2 = "今天天气真好，心情也很好哒!";
    console.log(str2.replace(/好/,"坏"));//只替换第一个
    console.log(str2.replace(/好/g,"坏"));//替换所有

</script>
</body>
</html>